package com.hzlj.position.locate.common.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fz.common.base.core.JacksonTypeHandlerIgnoreNull;
import com.hzlj.position.config.common.dto.common.PositionHandleExtDTO;
import com.hzlj.position.locate.common.dto.reportInspection.ReportInspectionExtDTO;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * 通信联络核查-核查(ReportInspection)实体类
 *
 * @author lifh
 * @since 2023-07-21 18:47:33
 */
@Data
@ToString
@TableName(value="report_inspection",autoResultMap = true)
public class ReportInspection {
    /**
    * 主键
    */
    @TableId(type = IdType.INPUT,value = "id")
    private String id;
    /**
    * 所属天
    */
    @TableField(value = "belong_day")
    private Date belongDay;
    /**
    * 矫正人ID(jz_jbxx)
    */
    @TableField(value = "jz_id")
    private String jzId;
    /**
    * 点验方式,dict-REPORT_TYPE
    */
    @TableField(value = "report_type")
    private String reportType;
    /**
    * 上报状态,dict-REPORT_STATUS
    */
    @TableField(value = "report_status")
    private String reportStatus;
    /**
    * 签到内容
    */
    @TableField(value = "report_content")
    private String reportContent;
    /**
    * 点验通知是否发送成功
    */
    @TableField(value = "notice")
    private Boolean notice;
    /**
    * 点验通知是否发送失败原因
    */
    @TableField(value = "notice_fail_msg")
    private String noticeFailMsg;
    /**
    * 应核查时间
    */
    @TableField(value = "spot_check_time")
    private Date spotCheckTime;
    /**
    * 最近的实际核查时间，如果为空，代表还没有发送
    */
    @TableField(value = "actual_spot_check_time")
    private Date actualSpotCheckTime;
    /**
    * 最大的延迟上报分钟数，必须在spot_check_time+max_delay_report_minutes之前上报
    */
    @TableField(value = "max_delay_report_minutes")
    private Integer maxDelayReportMinutes;
    /**
    * 最大可以重复的次数，不含第一次
    */
    @TableField(value = "max_retry_times")
    private Integer maxRetryTimes;
    /**
    * 上报时间
    */
    @TableField(value = "report_time")
    private Date reportTime;
    /**
    * 上报地址
    */
    @TableField(value = "report_address")
    private String reportAddress;
    /**
    * 纬度
    */
    @TableField(value = "latitude")
    private String latitude;
    /**
    * 经度
    */
    @TableField(value = "longitude")
    private String longitude;
    /**
    * 上报的现场图片
    */
    @TableField(value = "file_ids")
    private String fileIds;
    /**
    * 是否越界
    */
    @TableField(value = "cross_border")
    private Boolean crossBorder;
    /**
    * 额外参数,json-ReportInspectionExtDTO
    */
    @TableField(value = "ext",typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private ReportInspectionExtDTO ext;
    /**
    * 是否已经处理,dict-HANDLE_STATUS
    */
    @TableField(value = "handle_status")
    private String handleStatus;
    /**
    * 异常处理时间,当前更新时间
    */
    @TableField(value = "handle_time")
    private Date handleTime;
    /**
    * 异常处理数据,json-PositionHandleExtDTO
    */
    @TableField(value = "handle_ext",typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private PositionHandleExtDTO handleExt;
    /**
     * 是否已读
     */
    @TableField(value = "read",keepGlobalFormat = true)
    private Boolean read;
    /**
     * 已读时间
     */
    @TableField(value = "read_time")
    private Date readTime;
    /**
    * 是否有效
    */
    @TableField(value = "valid")
    private Boolean valid;
    /**
    * 更新时间
    */
    @TableField(value = "update_time")
    private Date updateTime;
    /**
    * 更新人
    */
    @TableField(value = "updater_uid")
    private String updaterUid;
    /**
    * 更新人姓名
    */
    @TableField(value = "updater_name")
    private String updaterName;
    /**
    * 创建时间
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * 创建人
    */
    @TableField(value = "creator_uid")
    private String creatorUid;
    /**
    * 更新人姓名
    */
    @TableField(value = "creator_name")
    private String creatorName;
    /**
     * 创建者JgCode
     */
    @TableField(value = "creator_jg_code")
    private String creatorJgCode;
    /**
     * 创建者JgMc
     */
    @TableField(value = "creator_jg_mc")
    private String creatorJgMc;
}
